package com.bm.util;


import java.io.*;
import java.util.ArrayList;

/**
 *文件处理工具类
 */

public class FileUtil {

    /**
     *读取CSV文件数据到集合中
     *@param path 文件地址
     *@return结果集合
     */
    public static ArrayList<String[]> CSV2Array(String path)
    {
        ArrayList<String[]> alldata = new ArrayList<String[]>();//创建一个集合，内容只能放字符串数组

        FileInputStream fis = null;//定义一个文件流
        InputStreamReader isr = null;//定义一个文件的字节流
        BufferedReader br = null;//定义文件的缓冲包装流
        try {
            fis = new FileInputStream(path);//打开一个文件流
            isr = new InputStreamReader(fis,"GBK");//打开文件的字节流
            br  = new BufferedReader(isr);//打开文件的缓冲包装流
            String line;//一行字符串
            String[] onerow;//切割后的字符串数组
            while ((line=br.readLine())!=null) {//读取当前行数据，判断是否有内容
                onerow = line.split(",");//按照逗号将一行字符串，分割成一段段的，放入字符串数组中

                alldata.add(onerow);//将分割后的字符串数组放入集合
            }
            br.close();//关闭流
            isr.close();//关闭流
            fis.close();//关闭文件流
        } catch (FileNotFoundException e) {
            System.err.println("文件打开失败："+path);
        } catch (UnsupportedEncodingException e) {
            System.err.println("字符编码错误");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return alldata;
    }

    /**
     *读取CSV文件数据到集合中
     *@param path 文件地址
     *@return结果集合
     */
    public static ArrayList<String[]> CSV2ArrayStudent(String path)
    {
        ArrayList<String[]> alldata = new ArrayList<String[]>();//创建一个集合，内容只能放字符串数组

        FileInputStream fis = null;//定义一个文件流
        InputStreamReader isr = null;//定义一个文件的字节流
        BufferedReader br = null;//定义文件的缓冲包装流
        try {
            fis = new FileInputStream(path);//打开一个文件流
            isr = new InputStreamReader(fis,"GBK");//打开文件的字节流
            br  = new BufferedReader(isr);//打开文件的缓冲包装流
            String line;//一行字符串
            String[] onerow;//切割后的字符串数组
            br.readLine();// 跳过第一行
            while ((line=br.readLine())!=null) {//读取当前行数据，判断是否有内容
                line.replaceAll("\\s","");//将空格删除
                onerow = line.split(",");//按照逗号将一行字符串，分割成一段段的，放入字符串数组中

                String certificate = onerow[onerow.length-1];//获取是否持有证书
                if ("是".equals(certificate)) {//判断是否持有证书
                    onerow[onerow.length-1] = "1";//持有：1 ，重新放入数组
                }else {
                    onerow[onerow.length-1] = "0";//持有：1 ，熏新放入数组
                }

                alldata.add(onerow);//将分割后的字符串数组放入集合
            }
            br.close();//关闭流
            isr.close();//关闭流
            fis.close();//关闭文件流
        } catch (FileNotFoundException e) {
            System.err.println("文件打开失败："+path);
        } catch (UnsupportedEncodingException e) {
            System.err.println("字符编码错误");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return alldata;
    }
}












